package com.enba.boot.core.utils;

import cn.hutool.captcha.GifCaptcha;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/** 验证码工具类 */
public final class CaptchaUtils {

  /**
   * @param width 验证码宽度
   * @param height 验证码高度
   * @param codeCount 验证码个数
   * @param interfereCount 验证码干扰元素个数
   */
  public static Map<String, String> captcha(
      int width, int height, int codeCount, int interfereCount) {
    GifCaptcha gifCaptcha = new GifCaptcha(width, height, codeCount, interfereCount);

    // 验证码唯一标识
    String key = UUID.randomUUID().toString();

    // 验证码
    String code = gifCaptcha.getCode().toLowerCase();

    // 图片带文件格式的 Base64
    String imageBase64Data = gifCaptcha.getImageBase64Data();

    Map<String, String> result = new HashMap<>();
    result.put("key", key);
    result.put("code", code);
    result.put("image", imageBase64Data);
    return result;
  }
}
